#region Using Statements

using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

#endregion

namespace HumanElement.Xna
{
    public interface IGameEngine
    {
        /// <summary>
        /// Gets the last game time.
        /// </summary>
        /// <value>The last game time.</value>
        GameTime LastGameTime { get; }

        /// <summary>
        /// Gets the players.
        /// </summary>
        /// <value>The players.</value>
        List<PlayerIndex> Players { get; }

        /// <summary>
        /// Gets the content manager.
        /// </summary>
        /// <value>The content manager.</value>
        ContentManager ContentManager { get; }

        /// <summary>
        /// Gets the graphics device.
        /// </summary>
        /// <value>The graphics device.</value>
        GraphicsDevice GraphicsDevice { get; }

        /// <summary>
        /// Pauses the specified timeout.
        /// </summary>
        /// <param name="timeout">The timeout.</param>
        void Pause(int timeout);

        /// <summary>
        /// Runs this instance.
        /// </summary>
        void Run();
    }
}